Skip to content

Conversation

@larohra
Copy link
Contributor

@larohra larohra commented Nov 7, 2025

Motivation and Context

Add integration tests for Azure Functions.

Description

The tests depend on our samples to provide the structure and our tests validate that they're working.
Azure Functions workers rely on the Functions host and a bunch of other emulators (azurite, DTS) to successfully run locally. This PR adds the setup for those emulators and functions host and starts it up before testing.

Contribution Checklist

  • The code builds clean without any errors or warnings
  • The PR follows the Contribution Guidelines
  • All unit tests pass, and I have added new tests where possible
  • Is this a breaking change? If yes, add "[BREAKING]" prefix to the title of the PR.

@larohra larohra requested a review from a team as a code owner November 7, 2025 22:49
Copilot AI review requested due to automatic review settings November 7, 2025 22:49
@markwallace-microsoft markwallace-microsoft added documentation Improvements or additions to documentation python labels Nov 7, 2025
@markwallace-microsoft
Copy link
Member

markwallace-microsoft commented Nov 7, 2025

Python Test Coverage

Python Test Coverage Report •
FileStmtsMissCoverMissing
TOTAL12708198384% 
report-only-changed-files is enabled. No files were changed during this commit :)

Python Unit Test Overview

Tests Skipped Failures Errors Time
1658 127 💤 0 ❌ 0 🔥 34.472s ⏱️

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive integration tests for Azure Functions samples in the Durable Agent Framework. The tests automatically start and stop Azure Functions apps for each sample using dynamically allocated ports, and validate their behavior through HTTP calls.

  • Adds integration test infrastructure with fixtures for managing function app lifecycle
  • Implements test coverage for 7 Azure Functions samples (single agent, multi-agent, orchestration patterns, callbacks, and HITL)
  • Updates CI workflow to set up required emulators (Azurite and Durable Task Scheduler)

Reviewed Changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
python/packages/azurefunctions/tests/integration_tests/testutils.py Core test utilities for managing function app lifecycle, port allocation, and orchestration polling
python/packages/azurefunctions/tests/integration_tests/conftest.py Pytest configuration with fixtures for starting/stopping function apps based on markers
python/packages/azurefunctions/tests/integration_tests/test_*.py Integration tests for each sample (01-07), validating HTTP endpoints and orchestration behavior
python/packages/azurefunctions/tests/integration_tests/README.md Documentation for running integration tests and required setup
.github/actions/azure-functions-integration-setup/action.yml GitHub Actions setup for emulators (Azurite and DTS)
.github/workflows/python-merge-tests.yml Updated CI workflow to include emulator setup
python/samples/getting_started/azure_functions/07_single_agent_orchestration_hitl/function_app.py Simplified type hints from dict[str, Any] to dict

Copilot AI review requested due to automatic review settings November 8, 2025 04:55
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 36 out of 36 changed files in this pull request and generated 5 comments.

Copilot AI review requested due to automatic review settings November 10, 2025 16:47
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 36 out of 36 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings November 10, 2025 21:18
Copilot finished reviewing on behalf of larohra November 10, 2025 21:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 38 out of 38 changed files in this pull request and generated 5 comments.

Copilot AI review requested due to automatic review settings November 10, 2025 21:46
Copilot finished reviewing on behalf of larohra November 10, 2025 21:48
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 39 out of 39 changed files in this pull request and generated 1 comment.

@vrdmr vrdmr added the azure-functions Issues and PRs related to Azure Functions label Nov 10, 2025
Copilot AI review requested due to automatic review settings November 10, 2025 23:27
Copilot finished reviewing on behalf of larohra November 10, 2025 23:33
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 47 out of 47 changed files in this pull request and generated 2 comments.

Copilot AI review requested due to automatic review settings November 11, 2025 05:12
Copilot finished reviewing on behalf of larohra November 11, 2025 05:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 50 out of 50 changed files in this pull request and generated 7 comments.

@larohra larohra merged commit 4eb31f1 into microsoft:feature-azure-functions Nov 11, 2025
12 checks passed
@larohra larohra deleted the integration-tests branch November 11, 2025 05:27
github-merge-queue bot pushed a commit that referenced this pull request Nov 13, 2025
* Python: Add Scaffolding for Durable AzureFunctions package to Agent Framework (#1823)

* Add scafolding

* update readme

* add code owners and label

* update owners

* .NET: Durable extension: initial src and unit tests (#1900)

* Python: Add Durable Agent Wrapper code (#1913)

* add initial changes

* Move code and add single sample

* Update logger

* Remove unused code

* address PR comments

* cleanup code and address comments

---------

Co-authored-by: Dmytro Struk <[email protected]>

* Azure Functions .NET samples (#1939)

* Python: Add Unit tests for Azurefunctions package (#1976)

* Add Unit tests for Azurefunctions

* remove duplicate import

* .NET: [Feature Branch] Migrate state schema updates and support for agents as MCP tools (#1979)

* Python: Add more samples for Azure Functions (#1980)

* Move all samples

* fix comments

* remove dead lines

* Make samples simpler

* .NET: [Feature Branch] Durable Task extension integration tests (#2017)

* .NET: [Feature Branch] Update OpenAI config for integration tests (#2063)

* Python: Add Integration tests for AzureFunctions  (#2020)

* Add Integration tests

* Remove DTS extension

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* Add pyi file for type safety

* Add samples in readme

* Updated all readme instructions

* Address comments

* Update readmes

* Fix requirements

* Address comments

---------

Co-authored-by: Copilot <[email protected]>

* .NET: [Feature Branch] Update dotnet-build-and-test.yml to support integration tests (#2070)

Co-authored-by: Copilot <[email protected]>

* Fix DTS startup issue and improve logging (#2103)

* .NET: [Feature Branch] Introduce Azure OpenAI config for .NET pipeline (#2106)

Also fixes an issue where we were trying to start docker containers for integration tests on Windows, which doesn't work.

Co-authored-by: Copilot <[email protected]>

* Fix uv.lock after merge

* Python: Add README for Azure Functions samples setup (#2100)

* Add README for Azure Functions samples setup

Added setup instructions for Azure Functions samples, including environment setup, virtual environment creation, and running samples.

* Update python/samples/getting_started/azure_functions/README.md

Co-authored-by: Copilot <[email protected]>

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <[email protected]>

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: Laveesh Rohra <[email protected]>

* Fix or remove broken markdown file links (#2115)

* .NET: [Feature Branch] Update HTTP API to be consistent across languages (#2118)

* Python: Fix AzureFunctions Integration Tests (#2116)

* Add Identity Auth to samples

* Update python/samples/getting_started/azure_functions/README.md

Co-authored-by: Copilot <[email protected]>

* Update python/samples/getting_started/azure_functions/01_single_agent/function_app.py

Co-authored-by: Copilot <[email protected]>

* Update python/samples/getting_started/azure_functions/02_multi_agent/function_app.py

Co-authored-by: Copilot <[email protected]>

* Update python/samples/getting_started/azure_functions/06_multi_agent_orchestration_conditionals/README.md

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* Python: Fix Http Schema (#2112)

* Rename to threadid

* Respond in plain text

* Make snake-case

* Add http prefix

* rename to wait-for-response

* Add query param check

* address comments

* .NET: Remove IsPackable=false in preparation for nuget release (#2142)

* Python: Move `azurefunctions` to `azure` for import (#2141)

* Move import to Azure

* fix mypy

* Update python/packages/azurefunctions/README.md

Co-authored-by: Copilot <[email protected]>

* Add missing types

* Address comments

---------

Co-authored-by: Copilot <[email protected]>

* Update python/packages/azurefunctions/pyproject.toml

Co-authored-by: Copilot <[email protected]>

* Update python/packages/azurefunctions/agent_framework_azurefunctions/__init__.py

Co-authored-by: Copilot <[email protected]>

* Fix imports

* Address PR feedback from westey-m (#2150)

- Adds a link from the /dotnet/samples/README.md to /dotnet/samples/AzureFunctions
- Make DurableAgentThread deserialization internal for future-proofing
- Update JSON serialization logic to address recently discovered issues with source generator serialization

* Address comments (#2160)

---------

Co-authored-by: Laveesh Rohra <[email protected]>
Co-authored-by: Chris Gillum <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Anirudh Garg <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

azure-functions Issues and PRs related to Azure Functions documentation Improvements or additions to documentation python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants